home *** CD-ROM | disk | FTP | other *** search
/ Windows News 2010 Summer - Disc 1 / WN_Ete2010_CD1.iso / Onglet5 / Weezo / Weezo setup.exe / {code_appDir} / www / js / webcam-src.js < prev    next >
Text File  |  2010-05-19  |  4KB  |  126 lines

  1. var webcamDetected=0, imgIndex=0, imgTmp=new Image(), lastUpdateRequest=(new Date()).getTime();
  2. if(W.winMe) winMe.setCloseFunction("winOnClose");
  3.  
  4. function init(){
  5.     if(!useFlashPlayer) setTimeout("updateImage()",refreshRate);
  6. }
  7. function toggleFlash(){document.forms.toggleFlashForm.submit();}
  8. function winOnClose(){if(dgi('playerWebcam')) dgi('playerWebcam').parentNode.removeChild(dgi('playerWebcam'));}
  9. function setImageSize(w,h){
  10.     var pW=dgi('playerWebcam'), pWE=dgi('playerWebcamEmbed');
  11.     
  12.     if(h==undefined && w.indexOf(',')>0){
  13.         h=w.substr(w.indexOf(',')+1);
  14.         w=w.substr(0,w.indexOf(','));
  15.     }
  16.     if(winUseWindows && w && h){
  17.         winMe.resizeTo(w*1+50,h*1+70,1);
  18.         windowSizeSet=true;
  19.     }
  20.  
  21.     if(pW){
  22.         pW.width=w;
  23.         pW.height=h;
  24.         pW.style.width=w+'px';
  25.         pW.style.height=h+'px';
  26.     }
  27.     if(pWE){
  28.         pWE.style.width=w+"px";
  29.         pWE.style.height=h+"px";
  30.     }
  31. }
  32. /*
  33. function updateRefreshRate(){
  34.     var newRR=dgi('rrInput').value;
  35.     if(typeof newRR!=number) {dgi('rrInput').value=refreshRate/1000; return;}
  36.     refreshRate=1000*newRR;
  37.     setTimeout("updateImage()",refreshRate);
  38.     updateImage();
  39. }
  40. */
  41. function noWebcamDetected(){
  42.     webcamDetected=0;
  43.     dgi('webcamError').style.display="block";
  44.     if(dgi('webcamImg0')) {
  45.         dgi('webcamImg0').style.display="none";
  46.         dgi('webcamImg1').style.display="none";
  47.     }
  48.     if(dgi('playerWebcam')) dgi('playerWebcam').style.display="none";
  49.     W.setTimeout("wl.goURL()",3000);
  50. }
  51.  
  52. /**
  53.  * Transition animation beetwen the 2 images
  54.  */
  55. var fadeToImagePos=0, fateToImageNb=0;
  56. function fadeToImage(imgNb){
  57.     if(imgNb!==undefined) {
  58.         fateToImageNb=imgNb;
  59.         // anim already in progress: terminate and let anim be restarted by timer
  60.         if(fadeToImagePos>0 && fadeToImagePos<1) {
  61.             setAlpha(dgi("webcamImg1"),(1-fateToImageNb));
  62.             return;
  63.         }
  64.     }
  65.  
  66.     fadeToImagePos=Math.max(0,Math.min(1,fadeToImagePos+0.05*(2*fateToImageNb-1)));
  67.     setAlpha(dgi("webcamImg1"),fadeToImagePos);
  68.  
  69.     if(fadeToImagePos>0 && fadeToImagePos<1) setTimeout(fadeToImage,40);
  70. }
  71.  
  72. /**
  73.  * Set new image source. Called by async PHP script
  74.  */
  75. function setImage(source){
  76.     if(!webcamDetected){
  77.         // Ensure "no detected webcam" message is hidden
  78.         dgi('webcamError').style.display="none";
  79.         // and webcam images are displayed
  80.         if(dgi('webcamImg0')){
  81.             dgi('webcamImg0').style.display="";
  82.             dgi('webcamImg1').style.display="";
  83.         }
  84.         // and flash object is displayed
  85.         if(dgi('playerWebcam')) dgi('playerWebcam').style.display="";
  86.         if(dgi('playerWebcamEmbed')) dgi('playerWebcamEmbed').style.display="";
  87.     }
  88.     
  89.     // Load image with javascript object
  90.     imgTmp.src=source;
  91.     
  92.     // And when loaded, trigger transition animation and set timer for next image request
  93.     imgTmp.onload=function(){
  94.         dgi("webcamImg"+imgIndex).src=imgTmp.src;
  95.         fadeToImage(imgIndex);
  96.         imgIndex=1-imgIndex;
  97.         setTimeout("updateImage()",10+Math.max(1,refreshRate-((new Date()).getTime()-lastUpdateRequest)))
  98.     };
  99.     
  100.     // Gecko webcamImg1 position WA
  101.     if(phpBrowser=='gecko' && dgi('webcamImg0').offsetTop<0) dgi('webcamImg1').style.top=dgi('webcamImg0').offsetTop;
  102. }
  103.  
  104. // Update time
  105. function setTimeCaption(newTime){winMe.setTitle(resName+' - '+newTime,0)}
  106.  
  107. /**
  108.  * Send request to server for a new image
  109.  */
  110. function updateImage(){
  111.     lastUpdateRequest=(new Date()).getTime();
  112.     sendData('asyncRefresh=true&noSt=true');
  113. }
  114.  
  115. /**
  116.  * Flash player commands processing
  117.  * @param c: command (see below)
  118.  * @param args: width+"x"+height if command is "setImageSize", formated time if command is "setTimeCaption"
  119.  */
  120. function processFlashCommand(c,args) {
  121.     if(c=='setTimeCaption') setTimeCaption(args);
  122.     if(c=='setImageSize') setImageSize(args);
  123.     if(c=='noWebcamDetected') setImageSize();
  124. }
  125. function playerWebcam_DoFSCommand(c, args) {processFlashCommand(c,args)}
  126. function flashCommand(c,args) {processFlashCommand(c,args);}